"""
需求：设计 SweetPotato 地瓜类
1. 地瓜有两个属性：
状态 state：初始状态为'生的'
烧烤总时间 cooked_time：初始时间为0
2. 实现__str__方法，打印对象，输出：地瓜状态为：xxx, 烧烤总时间为：yyy 分钟
3. 定义 cook 方法, 形参为 time，传入本次烧烤时间
1. 使用 烧烤总时间 对 本次烧烤时间 进行 累加，得到最新烧烤时间
2. 根据 烧烤总时间, 设置地瓜的状态：
0 <= 烧烤总时间 < 3 ： 生的
3 <= 烧烤总时间 < 6 ： 半生不熟
6 <= 烧烤总时间 < 8 ： 熟了
大于等于8 ： 烤糊了
4. 创建对象，调用方法，验证结果
2. Pytest框架
框架：解决一类事物的(工具)功能集合，简称 Framework
目的：通过pytest框架编写自动化测试脚本，统一管理用例，提高工作效率
pytest测试框架
定义：Python第三方的单元测试框架（测试可以做自动化测试）
特点：
能够组织多个自动化测试用例执行
方便实现参数化，提供断言简单方便（通过脚本自己去判断对错[预期结果和实际结果]）
能够生成测试报告（通过脚本自动生成报告）
pytest安装
"""


class SweetPotato(object):
    def __init__(self, state="生的", cooked_time=0):  # 默认状态为“生的”，烧烤总时间为 0 分钟
        self.state = state  # 地瓜当前的状态
        self.cooked_time = cooked_time  # 累计烧烤的总时间

    def __str__(self):
        # 返回一个格式化字符串，展示地瓜状态和总烧烤时间
        return f"地瓜状态为：{self.state}, 烧烤总时间为：{self.cooked_time} 分钟"

    # 0 <= 烧烤总时间 < 3 ： 生的
    # 3 <= 烧烤总时间 < 6 ： 半生不熟
    # 6 <= 烧烤总时间 < 8 ： 熟了
    # 大于等于8 ： 烤糊了

    # 根据烧烤时间判断地瓜当前状态
    def cook(self, time):
        self.cooked_time = self.cooked_time + time  # 将本次烧烤时间累加到总时间中
        if 0 <= self.cooked_time < 3:
            self.state = "生的"
        elif 3 <= self.cooked_time < 6:
            self.state = "半生不熟"
        elif 6 <= self.cooked_time < 8:
            self.state = "熟了"
        elif self.cooked_time >= 8:
            self.state = "烤糊了"


# 创建SweetPotato 类的实例(对象)
s1 = SweetPotato()

s1.cook(4)  # 考4分钟
# s1.cook(8)

# 打印地瓜对象，会自动调用 __str__ 方法，输出当前状态和总时间
print(s1)
